/*
 * RTSAI - Real-Time Strategy engine for AI research
 * Copyright(C) 2006 DIMAp-UFRN, licensed under LGPL
 *
 * Pool element header ( Pool.h )
 * Author: Diogo Leite Reboucas
 */

#ifndef POOL_ELEMENT_H_
#define POOL_ELEMENT_H_

// CLASS ----------------------------------------------------------------------
/*! This class implements an interface for classes that uses Pool.
 */
class PoolElement
{
    // METHODS ================================================================
    public:
        // int ----------------------------------------------------------------
        int get_id () const { return id; }

        // void ---------------------------------------------------------------
        void set_id ( const int& i ) { id = i; }
        
        virtual void reset () = 0;
    
        // Virtual destructor -------------------------------------------------
        virtual ~PoolElement() { /* Empty */ }
    
    // ATTRIBUTES =============================================================
    private:
        /// ID of entity
        int id;
        
}; // End of PoolElement class

#endif // POOL_ELEMENT_H_
